<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<link rel="stylesheet" href="rurple.css" type="text/css"/>

  <title>Lecciones con RUR-PLE</title>
</head>
<body>
<h2 class="title">Aprender Python: ¡Juego de niños, con
RUR-PLE!</h2>

<h6>André Roberge, © 2004-2010</h6>

<p>La siguiente es una lista de todas las lecciones disponibles.</p>

<h3 class="section">Parte 1. Bienvenidos al mundo de Reeborg.</h3>

<p>En esta primera parte comenaremos nuestra aventura-aprendizaje en el
mundo de Reeborg.
Aprenderemos cómo escribir programas de ordenador sencillos.</p>

<ul>
  <li><a href="intro/1-browser.htm">1. Sobre el navegador</a><br />
Esta primera lección describe brevemente el naveador incluido en
RUR-PLE.</li>
  <li><a href="intro/2-explore.htm">2. Reeborg explora su mundo</a><br />
En esta lección, comenzarás a familiarizarte con el
entorno de Reeborg y aprenderás a usar las flechas de
dirección para mover a Reeborg.</li>
  <li><a href="intro/3-first_program.htm">3. Primer programa</a><br />
esta lección describe lo que entendemos por un programa de
ordenador y nos presenta dos instrucciones para Reeborg: <code>move()</code>
y
    <code>turn_off().</code></li>
  <li><a href="intro/4-errors.htm">4. Manejándote con los eRRores</a><br />
Apenderemos sobre la importancia de las mayúsculas o
minúsculas en Python.</li>
  <li><a href="intro/5-comments.htm">5. ¿Algún
comentario?</a><br />
Aprenderemos cómo añadir explicaciones adicionales que
sirven sólo para que las lean los humanos, Se llaman <em>comentarios</em>.
También aprendemos a traducir las instrucciones a las que
obedece Reeborg, a otros lenguajes humanos usando sinónimos.
Esto está muy relacionado con el concepto de <i>variables</i>
que se verá mucho más adelante.</li>
  <li><a href="intro/6-left.htm">6. Dando un giro a la izquierda</a><br />
Aprendemos otra instrucción para Reeborg:
    <code>turn_left().</code></li>
  <li><a href="intro/7-beepers.htm">7. Beepers</a><br />
Aprenderemos sobre los beepers y las últimas dos órdenes
que Reeborg puede obedecer: <code>pick_beeper()</code> y
    <code>put_beeper()</code>.</li>
  <li><a href="intro/8-bugs.htm">8. ¡Malditos bichos!</a><br />
En esta lección se aprende todo sobre los "bugs"y cómo
RUR-PLE nos puede ayudar a encontrarlos y a eliminarlos.</li>
  <li><a href="intro/9-walls.htm">9. Construyendo paredes</a><br />
Aprendemos cómo poner y quitar paredes en el mundo de Reeborg;
esta lección nos lleva a algunos programas desafiantes.</li>
</ul>

<h3 class="section">Part 2. Reeborg sabe Python.</h3>
<p>En esta segunda parte, aprenderemos nuestras primeras instrucciones
Python y como podemos usarlas para ayudar a Reeborg a hacer varias
tareas, cada vez más difíciles, a la vez que se hace para
nosotros más fácil escribir los programas.</p>

<ul>
  <li><a href="intro/10-def.htm">10. Evitando las repeticiones de una
vez por todas.</a><br />
En esta lección aprendemos nuestra primera palabra en Python: <span
 class="pykeyword">def</span>.</li>
  <li><a href="intro/11-repeat.htm">11. Evitando repeticiones,
¡otra vez!</a><br />
Aquí aprendemos cómo Reeborg puede repetir instrucciones
automáticamente.</li>
  <li><a href="intro/12-if.htm">12. Si Reeborg fuese capaz de tomar
decisiones por sí mismo...</a><br />
En esta lección aprendemos nuestra segunda palabra en python: <span
 class="pykeyword">if</span>.</li>
  <li><a href="intro/13-else.htm">13. Escúchame ... y si no...
....</a><br />
En esta lección aprenderemos nuestra tercera palabra en Python: <span
 class="pykeyword">else</span>.</li>
  <li><a href="intro/14-elif.htm">14. If, else, if, else,
....</a><br />
En esta lección 
In this lesson, we learn our fourth and fifth Python keywords:
    <span class="pykeyword">elif</span> and <span class="pykeyword">pass</span>.</li>
<li><a href="intro/15-not.htm">15. Not true!?</a><br/>
In this lesson, we learn our sixth Python keyword: <span class=
"pykeyword">not</span>.</li>
<li><a href="intro/16-while.htm">16. For a while</a><br/>
In this lesson, we learn our seventh Python keyword: <span class=
"pykeyword">while</span>.</li>
<li><a href="intro/17-amazing1.htm">17. Amazing - part 1</a><br/>
We put together all we've learned so far to solve a series of
exercises, with a surprising conclusion.</li>
<li><a href="intro/18-amazing2.htm">18. Amazing - part 2</a></li>
<li><a href="intro/19-amazing3.htm">19. Amazing - part 3</a></li>
<li><a href="intro/20-amazing4.htm">20. Amazing - part 4</a></li>
<li><a href="intro/21-amazing5.htm">21. Amazing - part 5</a></li>
<li><a href="intro/22-rain.htm">22. It's raining!</a><br/>
Help Reeborg close the window in his house to prevent the rain
from coming in.</li>
<li><a href="intro/23-trash.htm">23. After the storm</a><br/>
Help Reeborg clean up his yard after a wind storm.</li>
<li><a href="intro/24-adding.htm">24. Teaching Reeborg to
add.</a><br/>
We teach Reeborg how to add two numbers on his own. After this
lesson, we will temporarily leave Reeborg's world to learn more
about Python itself.</li>
</ul>

<h3 class="section">Part 3. Python, the interpreter.</h3>
<p>In this third part, we will learn about the Python
interpreter. We will also learn about numbers, strings, lists,
tuples and dictionaries. This third part is very similar to a traditional
beginner's tutorial to Python ... except that we can still
have fun with Reeborg!</p>

<ul>
<li>
<a href="inter/25-interpreter.htm">25. Python already knows
how to add.</a><br/>
In this lesson, we explore how Python adds, subtracts,
multiplies, divides, ..., numbers.</li>
<li><a href="inter/26-interpreter2.htm">26. Interpreting the Python keywords</a><br/>
In this lesson we explore how the Python interpreter deals
with a few of the Python keywords that we already know.</li>
<li><a href="inter/27-variables.htm">27. Variables</a><br/>
In this lesson, we introduce the very important concept of <i>variables</i></li>
<li><a href="inter/28-variables2.htm">28. Variables and functions</a><br/>
In this lesson we will see how we can use functions and variables together.</li>
<li><a href="inter/29-strings.htm">29. What's your name?</a><br/>
In this lesson, we learn to use variables to represent strings.
We also learn about <i>slicing</i>.</li>
<li><a href="inter/30-dot.htm">30. Object-Oriented Programming:  "dot" notation</a><br/>
In this lesson we will learn about the "dot" notation that
is used commonly in Object-Oriented Programming languages.  
We will also learn something new about Reeborg's world.</li>
<li><a href="inter/31-global.htm">31. Globalization is a bad thing.</a><br/>
In this lesson, we will learn a new Python keyword: 
<span class="pykeyword">global</span>.</li>
<li><a href="inter/32-return.htm">32. Many returns</a><br/>
In this lesson we learn about a new Python keyword, 
<span class="pykeyword">return</span>, so that we can write even more
useful functions.</li>
<li><a href="inter/33-for.htm">33. Repeat() is hiding some Python keywords</a><br/>
In this lesson, we learn about two new Python keywords that we have briefly
seen before: <span class="pykeyword">for</span> and
<span class="pykeyword">in</span>.</li>
<li><a href="inter/34-lists.htm">34. Chocolate mousse cake recipe</a><br/>
In this lesson we learn about Python <i>lists</i>, see how we can find out
all the method for a given Python object, learn about a new keyword, 
<span class="pykeyword">del</span>.  We also learn something new about
the function <tt>range()</tt>.</li>
<li><a href="inter/35-dicts.htm">35. An other kind of definition</a><br/>
In this lesson we learn about Python <i>dicts</i>, as well as the built-in
function <tt>str()</tt>.</li>
<li><a href="inter/36-tuples.htm">36. Our last sequence</a><br/>
In this lesson we learn about Python <i>tuples</i>, as well as the 
difference between <i>mutable</i> and <i>immutable</i> objects. </li>
<li><a href="inter/37-class.htm">37. Fixing up Reeborg</a><br/>
An introduction to the idea of creating a new class by inheriting from an existing one.</li>
<li><a href="inter/38-class2.htm">38. A touch of class</a><br/>
Two more subclassing examples in Reeborg's world.</li>
<li><a href="inter/39-import.htm">39. Avoiding repetitions - the important stuff</a><br/>
We will learn about importing modules.</li>
<li><a href="inter/40-random.htm">40. Random escapes</a><br/>
We look at two relatively simple programs that rely on random turns and moves to find the exit from a maze. The first one checks for the presence of a
wall in front and moves only if there is none present. Example of
<i>Look before you leap.</i><br/>
The second catches exceptions (rather than checking for the
presence of a wall). Example of <i>Better to ask forgiveness than
permission.</i><br/>
This lesson introduces the Python keywords <span class=
"pykeyword">try</span>, <span class="pykeyword">except</span>, and <span class="pykeyword">raise</span>.</li>
</ul>

<h3 class="section">Advanced lessons</h3>
<p>The following lessons are presented as individual topics, each more or less standing on its own.  They are meant to be the beginning points of some further exploration, or useful for teachers.</p>

<ul>
<li><a href="advanced/41-fairy_tale.htm">41. A Robotic Fairy Tale</a><br/>
A review exercise presented as a Fairy Tale.</li>
<li><a href="advanced/42-numbers.htm">42. Octal, hexadecimal and binary numbers</a><br/>
In this lesson, we have a brief look at binary, octal and hexadecimal numbers.</li>
<li><a href="advanced/43-sorting.htm">43. Sorting</a><br/>
Some suggested sorting exercises in Reeborg's world.</li>
<li><a href="advanced/44-fractions.htm">44. Fractions - Part 1</a><br/>
We define and print fractions.</li>
<li><a href="advanced/45-fractions2.htm">45. Fractions - Part 2</a><br/>
We multiply fractions and learn about an ancient algorithm.</li>
<li><a href="advanced/46-fractions3.htm">46. Fractions - Part 3</a><br/>
We define, add and subtract fractions.</li>
<li><a href="advanced/47-fractions4.htm">47. Fractions - Part 4</a><br/>
We combine fractions with integers.</li>
<li><a href="advanced/48-beyond_python.htm">48. Beyond Python</a><br/>
We search square roots of fractions and encounter surprising problems which we 
cannot solve with Python.</li>
<li><a href="advanced/49-input.htm">49. Reeborg asks you: to do</a></li>
<li><a href="advanced/50-images.htm">50. Using custom made images: to do</a></li>
<li><a href="advanced/51-editor.htm">51. Using the built-in editor: to do</a></li>
<li><a href="advanced/52-lightning.htm">52. Using Lightning Compiler: the basics: to do</a></li>
<li><a href="advanced/53-lightning2.htm">53. Using Lightning Compiler: doctests: to do</a></li>
</ul>

<h3 class="section">Appendix</h3>
<p>
<a href="summary.htm">Summary of instructions</a><br />
<a href="about.htm">About RUR-PLE</a> <br />
<a href="acknowledgements.htm">Acknowledgements</a><br />
</p>

</body>
</html>
